Amazon S3 のバージョン管理について
ObjectにバージョンIDを持つ
ファイル名の最後にタイムスタンプの文字列を付けて簡易的なバージョン管理を行ったことはありませんでしょうか?そのうち最新とか付けて混沌としてしまうことってありますよね(笑)。 Amazon S3 は、Bucketのオプション指定をすることでObjectファイルに複数バージョン持たせることができます。BucketでVersioning指定をEnableにすると、そのBucket内の全てのObjectがバージョン管理対象となります。管理されたObjectはユニークなVersion ID を持つこととなり、IDを指定して取り出したり消したりできます。
Versioning指定をEnableにする
AWS Management Console は、未だVersioning機能を操作するUIに対応していません。そこで、Amazon S3 の管理ツールとして有名なCloudBerry Explorer を使ってみます。AWSアカウントを使えばすぐに使えます。
Bucketを選択してからプロパティ画面でバージョン管理をONにします。
Objectを更新してバージョンを確認する
VersioningをEnableにしたBucket内でhello.txtをアップします。次に更新した同じファイルhello.txtをアップします。上書きとなりますがバージョン確認画面にて2つのバージョンが保管されていることが分かります。 概念図は以下です。
削除されたObjectは見えるのか
バージョン管理機能ですので削除されたObjectもしっかりと見えます。
削除マークが付いたバージョンが追加されたという概念で問題ないと思います。
削除されたObjectをブラウザから閲覧しようとすると404 Not Found となります。期待している動きですね。
普通にObjectを取得しようとすると最新の状態を取ろうとします。最新状態が削除済みであれば404です。もし、バージョンIDを指定して取得したならばちゃんとObjectが取得されます。
削除と言っても違う削除もあります。バージョンを削除することです。バージョンIDを指定して削除することにより消すことができます。
まとめ
Amazon S3 でファイルのバージョン管理を行えることが分かりました。特別なソフトウェアを使うこと無く設定だけでバージョン管理ができるのは利用者にとってメリットが大きいと思います。安全で安価でバージョン管理ができるインターネットストレージを是非使ってみてください。